libxl: simplify libxl__dirname()
authorLai Jiangshan <laijs@cn.fujitsu.com>
Tue, 11 Mar 2014 14:15:22 +0000 (22:15 +0800)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Thu, 13 Mar 2014 16:51:13 +0000 (16:51 +0000)
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/libxl/libxl_internal.c

index 16b82b95050de735a1c2fb17f2f6a4ed63e3a0f1..1db48b6dfb06c584d6eda85d1aab72808e980598 100644 (file)
@@ -162,14 +162,12 @@ char *libxl__strndup(libxl__gc *gc, const char *c, size_t n)
 
 char *libxl__dirname(libxl__gc *gc, const char *s)
 {
-    char *c;
-    char *ptr = libxl__strdup(gc, s);
+    char *c = strrchr(s, '/');
 
-    c = strrchr(ptr, '/');
     if (!c)
         return NULL;
-    *c = '\0';
-    return ptr;
+
+    return libxl__strndup(gc, s, c - s);
 }
 
 void libxl__logv(libxl_ctx *ctx, xentoollog_level msglevel, int errnoval,